package com.yzf.demo.demo.io;

import java.io.*;

/**
 * Created by 于占峰 on 2020/4/5/005.
 */
public class FileOutputInputStreamDemo {

    //I input 重磁盘读取数据到内存

    //O output 吧内存中的数据写到磁盘

    public static void main(String[] args) {
        String filePath = "E:/下载/承太郎早期试镜火影录像.flv";
        String outPath = "G:/123.flv";
        try { //使用 try catch 包住 输入是输出流可以自动关闭流 1.7以后 --> 前提是使用的输入输出流必须实现了Closeable接口
            long startTime = System.currentTimeMillis();    //获取开始时间
            File file = new File(filePath);
            FileInputStream fileInputStream = new FileInputStream(file);
            FileOutputStream fileOutputStream = new FileOutputStream(outPath);
            int len = 0;
            //合理设置缓冲区 减少写入磁盘的次数
            byte[] buffer = new byte[1024];
            while ((len = fileInputStream.read(buffer)) != -1) {
                //读取的数据可以保存在内存中 也可以写出带磁盘
                fileOutputStream.write(buffer, 0, len);//吧fileInputStream的输入字节写出到指定的目录下
            }
            long endTime = System.currentTimeMillis();    //获取结束时间
            System.out.println("程序运行时间：" + (endTime - startTime) + "ms");    //输出程序运行时间
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
